<?php

namespace app\common;

use PHPMailer\PHPMailer\PHPMailer;
use app\model\Config;

class Mailer
{
    /**
     * 发送 function
     *
     * @param string $title 标题
     * @param string $appname 名称
     * @param string $appnum 手机号
     * @param string $type 类型
     * @param string $msg 留言
     * @return object
     */
    public static function send(string $title = "联系", string $appname = '', string $appnum = '', string $type = "", string $msg = ""): object
    {
        $find = Config::select("prefix", "email");

        $mail = new PHPMailer();
        $mail->isSMTP(); // 使用SMTP服务
        $mail->CharSet = "utf8"; // 编码格式为utf8，不设置编码的话，中文会出现乱码
        $mail->Host = $find["Host"]; // 发送方的SMTP服务器地址
        $mail->SMTPAuth = true; // 是否使用身份验证
        $mail->Username = $find["username"]; // 发送方的163邮箱用户名，就是你申请163的SMTP服务使用的163邮箱</span><span style="color:#333333;">
        $mail->Password = $find["Password"]; // 发送方的邮箱密码，注意用163邮箱这里填写的是“客户端授权密码”而不是邮箱的登录密码！</span><span style="color:#333333;">
        $mail->SMTPSecure = $find["ssl"]; // 使用ssl协议方式</span><span style="color:#333333;">
        $mail->Port = 465; // 163邮箱的ssl协议方式端口号是465/994

        $mail->setFrom($find["form"], "国乐一号网站【$title 】"); // 设置发件人信息，如邮件格式说明中的发件人，这里会显示为Mailer(xxxx@163.com），Mailer是当做名字显示

        /* $mail->addAddress("465672808@qq.com", "国乐一号网站【$title 】"); // 设置收件人信息，如邮件格式说明中的收件人，这里会显示为Liang(yyyy@163.com)
        $mail->addAddress("497426637@qq.com", "国乐一号网站【$title 】"); // 设置收件人信息，如邮件格式说明中的收件人，这里会显示为Liang(yyyy@163.com) */
        // $mail->addAddress("1164601554@qq.com", "国乐一号网站【$title 】"); // 设置收件人信息，如邮件格式说明中的收件人，这里会显示为Liang(yyyy@163.com)
        foreach (explode(',', $find["toUser"]) as $k => $v) {
            $mail->addAddress($v, "国乐一号网站【$title 】");
        }

        $mail->addReplyTo($find["form"], "国乐一号网站【$title 】"); // 

        $mail->Subject = "国乐一号网站【$title 】"; // 邮件标题
        $mail->Body = "国乐China-$title 提交信息，姓名： $appname ，手机： $appnum ，类型： $type ，时间：" . date('Y-m-d H:i:s', time()) . "\n" . $msg; // 邮件正文
        //$mail->AltBody = "This is the plain text纯文本";// 这个是设置纯文本方式显示的正文内容，如果不支持Html方式，就会用到这个，基本无用

        return $mail;

        /* if (!$mail->send()) { // 发送邮件
            // echo "Message could not be sent.";
            // echo "Mailer Error: " . $mail->ErrorInfo; // 输出错误信息
            return ['code' => 2, 'msg' => '错误:' . $mail->ErrorInfo];
        } else {
            // echo '发送成功';
            return ['code' => 0, 'msg' => '短信发送成功!'];
        } */
    }
}
